.TITLE UTLDEF .IDENT /01/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER LICENSE AND MAY ONLY BE USED ; OR COPIED ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; T. LEKAS 04-JUN-82 ; ; MODIFIED BY: ; ; ; THIS MODULE CONTAINS DEFINITIONS AND ROUTINES FROM ; EXEC MODULES THAT HAVE GONE AWAY IN XT SYSTEMS ; $ALEB1::SEC ;FAIL MOV (SP)+,(SP) $QEMB:: RETURN $DVCER:: $DVERR:: $DTOER:: .WORD 0 ; ;+ ; **-$LDPWF-CALL DRIVER AT POWERFAIL ENTRY. ; ; THIS ROUTINE WILL UNCONDITIONALLY CALL THE DRIVER AT ITS POWERFAIL ; ENTRY FOR A SINGLE UNIT. ; ; INPUTS: ; ; R2=DDT ADDRESS. ; R3=DCB ADDRESS. ; R4=SCB ADDRESS. ; R5=UCB ADDRESS. ; ; OUTPUTS: ; ; NONE ; ; NO REGISTERS ARE PRESERVED! ;- ; $LDPWF::MOV KINAR5,-(SP) ;SAVE KERNEL INSTR ADDR REG 5 MOV KINAR6,-(SP) ;SAVE KERNEL INSTR ADDR REG 6 MOV D.PCB(R3),R3 ;GET DRIVER PCB ADDRESS MOV P.REL(R3),KINAR5 ;MAP THE DRIVER 55$: MOV S.KRB(R4),R3 ;GET KRB ADDRESS BEQ 60$ ;IF EQ NO KRB ADDRESS MOVB K.CON(R3),R3 ;GET CONTROLLER INDEX ; ; CALL DRIVER AT POWERFAIL ENTRY POINT WITH THE ARGUMENTS: ; ; R3=CONTROLLER INDEX. ; R4=ADDRESS OF THE STATUS CONTROL BLOCK. ; R5=ADDRESS OF THE UNIT CONTROL BLOCK. ; ; IF S.KRB=0 THEN R3 IS UNDEFINED. ; 60$: TST D.VPWF(R2) ;IS THERE AN ENTRY ? BEQ 70$ ;IF EQ NO CLC CALL @D.VPWF(R2) ;CALL DRIVER AT POWERFAIL ENTRYPOINT 70$: ;REFERENCE LABEL MOV (SP)+,KINAR6 ;RESTORE KERNEL INSTR ADDR REG 6 MOV (SP)+,KINAR5 ;RESTORE KERNEL INSTR ADDR REG 5 RETURN ; .END